import bpy
import math
bpy.ops.mesh.primitive_cube_add(size=2.0,align='WORLD',
location=(0.0, 0.0, -1.0), rotation=(0.0, 0.0, 0.0),
scale=(1.0, 1.0, 1.0))
bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=4,align='WORLD',
location=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0),
scale=(1.0, 1.0, 1.0))
bpy.ops.object.modifier_add(type='BOOLEAN')
bpy.context.object.modifiers["Boolean"].object = bpy.data.objects["Cube"]
bpy.ops.object.modifier_apply(modifier="Boolean")
object_to_delete = bpy.data.objects["Cube"]
bpy.data.objects.remove(object_to_delete)